package com.faxsun.core.service;

import java.util.List;

import com.faxsun.pojos.TagAggregation;

import mblog.core.pojos.Tag;
import mtons.modules.pojos.Page;

public interface AggregationService {

	/**
	 * 根据tag聚合产品信息
	 * @param productTag
	 * @return
	 */
	public TagAggregation aggregateProduct(Page page,Tag productTag);
	
	/**
	 * 根据tag聚合分类信息，包括测评和资讯
	 * @param categoryTag
	 * @return
	 */
	public TagAggregation aggregateCategory(Page page,Tag categoryTag);
	
	/**
	 * 根据tag聚合测评
	 * @param tag
	 * @return
	 */
	public TagAggregation aggregateEvulationsByTag(Page page,Tag tag);
	
	/**
	 * 根据多个tag聚合测评
	 * @param tag
	 * @return
	 */
	public TagAggregation aggregateEvulationsByTags(Page page,List<Tag> tags);
	
	/**
	 * 根据tag聚合资讯
	 * @param tag
	 * @return
	 */
	public TagAggregation aggregateInfosByTag(Page page,Tag tag);
	
	/**
	 * 根据tags聚合资讯
	 * @param tag
	 * @return
	 */
	public TagAggregation aggregateInfosByTags(Page page,List<Tag> tags);
	
	/**
	 * 对多个Tag进行聚合操作
	 * @param tags
	 * @return
	 */
	public TagAggregation aggregateByMultipleTags(Page page,List<Tag> tags);
	
	/**
	 * 根据Category，筛选出满足条件的ProductTag
	 * @param page 一页结果
	 * @param tags 分类tag
	 * @return 产品Tag结果
	 */
	public List<Tag> aggregateProductByCategoryTag(Page page, List<Tag> tags);
}
